#include<stdio.h>
#include<iostream>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<errno.h>


//int main()
//{
//    close(1);
//    int fd = open("log.txt", O_WRONLY | O_CREAT | O_TRUNC, 0666);
//    if (fd < 0)
//    {
//        perror("open");
//        return 0;
//    }
//   
//    printf("hello world: %d\n", fd); //stdout -> 1  数据会暂时放在stdout的缓冲区里
//    fflush(stdout);//?  printf 认的是1号描述符
//
//   // const char* msg = "hello world";
//   // write(fd, msg, strlen(msg));
//
//    close(fd);  // 数据在缓冲区中，但是对应的fd关了，数据就无法更新了
//}


//void myperror(const char* msg)
//{
//    fprintf(stderr, "%s: %s\n", msg, strerror(errno));
//}
//
//int main()
//{
//    int fd = open("log.txt", O_RDONLY);
//    if (fd < 0)
//    {
//        myperror("open");
//    }
//}

//int main()
//{
//    //stdout -> 1
//    printf("hello printf 1\n");
//    fprintf(stdout, "hello fprntf 1\n");
//    //stderr -> 2
//    errno = 2;
//    perror("hello perrror 2");//stderr
//
//    const char* s1 = "hello write 1\n";
//    write(1, s1, strlen(s1));
//
//    const char* s2 = "hello write 2\n";
//    write(2, s2, strlen(s2));
//
//    // cout -> 1
//    std::cout << "hello cout 1"  << std::endl;
//    //cerr -> 2
//    std::cerr << "hello cerr 2" << std::endl;
//    
//}



